#include "fastfft.h"

/* butterfly computation */
#define fast_fft_256_res_2p8_buttCom(n1, n2, nw) {\
int32_t x1_r = reals[n1]; \
int32_t x1_i = imgs[n1]; \
int32_t x2_r = reals[n2]; \
int32_t x2_i = imgs[n2]; \
int32_t x2w_r = ((fast_fft_256_res_2p8_wn[nw*2] * x2_r) >> 8) - ((fast_fft_256_res_2p8_wn[nw*2 + 1] * x2_i) >> 8); \
int32_t x2w_i = ((fast_fft_256_res_2p8_wn[nw*2 + 1] * x2_r) >> 8) + ((fast_fft_256_res_2p8_wn[nw*2] * x2_i) >> 8); \
reals[n1] = x1_r + x2w_r; \
imgs[n1] = x1_i + x2w_i; \
reals[n2] = x1_r - x2w_r; \
imgs[n2] = x1_i - x2w_i; \
}
/* change */
#define fast_fft_256_res_2p8_change(n1, n2) {\
int32_t tmp = reals[n1];\
reals[n1] = reals[n2];\
reals[n2] = tmp;\
tmp = imgs[n1];\
imgs[n1] = imgs[n2];\
imgs[n2] = tmp;\
}
/* fast fft 256 Wn table */
static const int32_t fast_fft_256_res_2p8_wn[] = {
   256,    0,  255,   -6,  255,  -12,  255,  -18,  254,  -25,  254,  -31,  253,  -37,  252,  -43
,  251,  -49,  249,  -56,  248,  -62,  246,  -68,  244,  -74,  243,  -80,  241,  -86,  238,  -92
,  236,  -97,  234, -103,  231, -109,  228, -115,  225, -120,  222, -126,  219, -131,  216, -136
,  212, -142,  209, -147,  205, -152,  201, -157,  197, -162,  193, -167,  189, -171,  185, -176
,  181, -181,  176, -185,  171, -189,  167, -193,  162, -197,  157, -201,  152, -205,  147, -209
,  142, -212,  136, -216,  131, -219,  126, -222,  120, -225,  115, -228,  109, -231,  103, -234
,   97, -236,   92, -238,   86, -241,   80, -243,   74, -244,   68, -246,   62, -248,   56, -249
,   49, -251,   43, -252,   37, -253,   31, -254,   25, -254,   18, -255,   12, -255,    6, -255
,    0, -255,   -6, -255,  -12, -255,  -18, -255,  -25, -254,  -31, -254,  -37, -253,  -43, -252
,  -49, -251,  -56, -249,  -62, -248,  -68, -246,  -74, -244,  -80, -243,  -86, -241,  -92, -238
,  -97, -236, -103, -234, -109, -231, -115, -228, -120, -225, -126, -222, -131, -219, -136, -216
, -142, -212, -147, -209, -152, -205, -157, -201, -162, -197, -167, -193, -171, -189, -176, -185
, -181, -181, -185, -176, -189, -171, -193, -167, -197, -162, -201, -157, -205, -152, -209, -147
, -212, -142, -216, -136, -219, -131, -222, -126, -225, -120, -228, -115, -231, -109, -234, -103
, -236,  -97, -238,  -92, -241,  -86, -243,  -80, -244,  -74, -246,  -68, -248,  -62, -249,  -56
, -251,  -49, -252,  -43, -253,  -37, -254,  -31, -254,  -25, -255,  -18, -255,  -12, -255,   -6
};
/* fast fft 256 */
void fast_fft_256_res_2p8_analyse(int32_t *reals, int32_t *imgs)
{
  for(int i = 0; i < 256; i++)
  {
    imgs[i]=0;
  }
  fast_fft_256_res_2p8_change(1, 128);
  fast_fft_256_res_2p8_change(2, 64);
  fast_fft_256_res_2p8_change(3, 192);
  fast_fft_256_res_2p8_change(4, 32);
  fast_fft_256_res_2p8_change(5, 160);
  fast_fft_256_res_2p8_change(6, 96);
  fast_fft_256_res_2p8_change(7, 224);
  fast_fft_256_res_2p8_change(8, 16);
  fast_fft_256_res_2p8_change(9, 144);
  fast_fft_256_res_2p8_change(10, 80);
  fast_fft_256_res_2p8_change(11, 208);
  fast_fft_256_res_2p8_change(12, 48);
  fast_fft_256_res_2p8_change(13, 176);
  fast_fft_256_res_2p8_change(14, 112);
  fast_fft_256_res_2p8_change(15, 240);
  fast_fft_256_res_2p8_change(17, 136);
  fast_fft_256_res_2p8_change(18, 72);
  fast_fft_256_res_2p8_change(19, 200);
  fast_fft_256_res_2p8_change(20, 40);
  fast_fft_256_res_2p8_change(21, 168);
  fast_fft_256_res_2p8_change(22, 104);
  fast_fft_256_res_2p8_change(23, 232);
  fast_fft_256_res_2p8_change(25, 152);
  fast_fft_256_res_2p8_change(26, 88);
  fast_fft_256_res_2p8_change(27, 216);
  fast_fft_256_res_2p8_change(28, 56);
  fast_fft_256_res_2p8_change(29, 184);
  fast_fft_256_res_2p8_change(30, 120);
  fast_fft_256_res_2p8_change(31, 248);
  fast_fft_256_res_2p8_change(33, 132);
  fast_fft_256_res_2p8_change(34, 68);
  fast_fft_256_res_2p8_change(35, 196);
  fast_fft_256_res_2p8_change(37, 164);
  fast_fft_256_res_2p8_change(38, 100);
  fast_fft_256_res_2p8_change(39, 228);
  fast_fft_256_res_2p8_change(41, 148);
  fast_fft_256_res_2p8_change(42, 84);
  fast_fft_256_res_2p8_change(43, 212);
  fast_fft_256_res_2p8_change(44, 52);
  fast_fft_256_res_2p8_change(45, 180);
  fast_fft_256_res_2p8_change(46, 116);
  fast_fft_256_res_2p8_change(47, 244);
  fast_fft_256_res_2p8_change(49, 140);
  fast_fft_256_res_2p8_change(50, 76);
  fast_fft_256_res_2p8_change(51, 204);
  fast_fft_256_res_2p8_change(53, 172);
  fast_fft_256_res_2p8_change(54, 108);
  fast_fft_256_res_2p8_change(55, 236);
  fast_fft_256_res_2p8_change(57, 156);
  fast_fft_256_res_2p8_change(58, 92);
  fast_fft_256_res_2p8_change(59, 220);
  fast_fft_256_res_2p8_change(61, 188);
  fast_fft_256_res_2p8_change(62, 124);
  fast_fft_256_res_2p8_change(63, 252);
  fast_fft_256_res_2p8_change(65, 130);
  fast_fft_256_res_2p8_change(67, 194);
  fast_fft_256_res_2p8_change(69, 162);
  fast_fft_256_res_2p8_change(70, 98);
  fast_fft_256_res_2p8_change(71, 226);
  fast_fft_256_res_2p8_change(73, 146);
  fast_fft_256_res_2p8_change(74, 82);
  fast_fft_256_res_2p8_change(75, 210);
  fast_fft_256_res_2p8_change(77, 178);
  fast_fft_256_res_2p8_change(78, 114);
  fast_fft_256_res_2p8_change(79, 242);
  fast_fft_256_res_2p8_change(81, 138);
  fast_fft_256_res_2p8_change(83, 202);
  fast_fft_256_res_2p8_change(85, 170);
  fast_fft_256_res_2p8_change(86, 106);
  fast_fft_256_res_2p8_change(87, 234);
  fast_fft_256_res_2p8_change(89, 154);
  fast_fft_256_res_2p8_change(91, 218);
  fast_fft_256_res_2p8_change(93, 186);
  fast_fft_256_res_2p8_change(94, 122);
  fast_fft_256_res_2p8_change(95, 250);
  fast_fft_256_res_2p8_change(97, 134);
  fast_fft_256_res_2p8_change(99, 198);
  fast_fft_256_res_2p8_change(101, 166);
  fast_fft_256_res_2p8_change(103, 230);
  fast_fft_256_res_2p8_change(105, 150);
  fast_fft_256_res_2p8_change(107, 214);
  fast_fft_256_res_2p8_change(109, 182);
  fast_fft_256_res_2p8_change(110, 118);
  fast_fft_256_res_2p8_change(111, 246);
  fast_fft_256_res_2p8_change(113, 142);
  fast_fft_256_res_2p8_change(115, 206);
  fast_fft_256_res_2p8_change(117, 174);
  fast_fft_256_res_2p8_change(119, 238);
  fast_fft_256_res_2p8_change(121, 158);
  fast_fft_256_res_2p8_change(123, 222);
  fast_fft_256_res_2p8_change(125, 190);
  fast_fft_256_res_2p8_change(127, 254);
  fast_fft_256_res_2p8_change(131, 193);
  fast_fft_256_res_2p8_change(133, 161);
  fast_fft_256_res_2p8_change(135, 225);
  fast_fft_256_res_2p8_change(137, 145);
  fast_fft_256_res_2p8_change(139, 209);
  fast_fft_256_res_2p8_change(141, 177);
  fast_fft_256_res_2p8_change(143, 241);
  fast_fft_256_res_2p8_change(147, 201);
  fast_fft_256_res_2p8_change(149, 169);
  fast_fft_256_res_2p8_change(151, 233);
  fast_fft_256_res_2p8_change(155, 217);
  fast_fft_256_res_2p8_change(157, 185);
  fast_fft_256_res_2p8_change(159, 249);
  fast_fft_256_res_2p8_change(163, 197);
  fast_fft_256_res_2p8_change(167, 229);
  fast_fft_256_res_2p8_change(171, 213);
  fast_fft_256_res_2p8_change(173, 181);
  fast_fft_256_res_2p8_change(175, 245);
  fast_fft_256_res_2p8_change(179, 205);
  fast_fft_256_res_2p8_change(183, 237);
  fast_fft_256_res_2p8_change(187, 221);
  fast_fft_256_res_2p8_change(191, 253);
  fast_fft_256_res_2p8_change(199, 227);
  fast_fft_256_res_2p8_change(203, 211);
  fast_fft_256_res_2p8_change(207, 243);
  fast_fft_256_res_2p8_change(215, 235);
  fast_fft_256_res_2p8_change(223, 251);
  fast_fft_256_res_2p8_change(239, 247);
  fast_fft_256_res_2p8_buttCom(0, 1, 0);
  fast_fft_256_res_2p8_buttCom(2, 3, 0);
  fast_fft_256_res_2p8_buttCom(4, 5, 0);
  fast_fft_256_res_2p8_buttCom(6, 7, 0);
  fast_fft_256_res_2p8_buttCom(8, 9, 0);
  fast_fft_256_res_2p8_buttCom(10, 11, 0);
  fast_fft_256_res_2p8_buttCom(12, 13, 0);
  fast_fft_256_res_2p8_buttCom(14, 15, 0);
  fast_fft_256_res_2p8_buttCom(16, 17, 0);
  fast_fft_256_res_2p8_buttCom(18, 19, 0);
  fast_fft_256_res_2p8_buttCom(20, 21, 0);
  fast_fft_256_res_2p8_buttCom(22, 23, 0);
  fast_fft_256_res_2p8_buttCom(24, 25, 0);
  fast_fft_256_res_2p8_buttCom(26, 27, 0);
  fast_fft_256_res_2p8_buttCom(28, 29, 0);
  fast_fft_256_res_2p8_buttCom(30, 31, 0);
  fast_fft_256_res_2p8_buttCom(32, 33, 0);
  fast_fft_256_res_2p8_buttCom(34, 35, 0);
  fast_fft_256_res_2p8_buttCom(36, 37, 0);
  fast_fft_256_res_2p8_buttCom(38, 39, 0);
  fast_fft_256_res_2p8_buttCom(40, 41, 0);
  fast_fft_256_res_2p8_buttCom(42, 43, 0);
  fast_fft_256_res_2p8_buttCom(44, 45, 0);
  fast_fft_256_res_2p8_buttCom(46, 47, 0);
  fast_fft_256_res_2p8_buttCom(48, 49, 0);
  fast_fft_256_res_2p8_buttCom(50, 51, 0);
  fast_fft_256_res_2p8_buttCom(52, 53, 0);
  fast_fft_256_res_2p8_buttCom(54, 55, 0);
  fast_fft_256_res_2p8_buttCom(56, 57, 0);
  fast_fft_256_res_2p8_buttCom(58, 59, 0);
  fast_fft_256_res_2p8_buttCom(60, 61, 0);
  fast_fft_256_res_2p8_buttCom(62, 63, 0);
  fast_fft_256_res_2p8_buttCom(64, 65, 0);
  fast_fft_256_res_2p8_buttCom(66, 67, 0);
  fast_fft_256_res_2p8_buttCom(68, 69, 0);
  fast_fft_256_res_2p8_buttCom(70, 71, 0);
  fast_fft_256_res_2p8_buttCom(72, 73, 0);
  fast_fft_256_res_2p8_buttCom(74, 75, 0);
  fast_fft_256_res_2p8_buttCom(76, 77, 0);
  fast_fft_256_res_2p8_buttCom(78, 79, 0);
  fast_fft_256_res_2p8_buttCom(80, 81, 0);
  fast_fft_256_res_2p8_buttCom(82, 83, 0);
  fast_fft_256_res_2p8_buttCom(84, 85, 0);
  fast_fft_256_res_2p8_buttCom(86, 87, 0);
  fast_fft_256_res_2p8_buttCom(88, 89, 0);
  fast_fft_256_res_2p8_buttCom(90, 91, 0);
  fast_fft_256_res_2p8_buttCom(92, 93, 0);
  fast_fft_256_res_2p8_buttCom(94, 95, 0);
  fast_fft_256_res_2p8_buttCom(96, 97, 0);
  fast_fft_256_res_2p8_buttCom(98, 99, 0);
  fast_fft_256_res_2p8_buttCom(100, 101, 0);
  fast_fft_256_res_2p8_buttCom(102, 103, 0);
  fast_fft_256_res_2p8_buttCom(104, 105, 0);
  fast_fft_256_res_2p8_buttCom(106, 107, 0);
  fast_fft_256_res_2p8_buttCom(108, 109, 0);
  fast_fft_256_res_2p8_buttCom(110, 111, 0);
  fast_fft_256_res_2p8_buttCom(112, 113, 0);
  fast_fft_256_res_2p8_buttCom(114, 115, 0);
  fast_fft_256_res_2p8_buttCom(116, 117, 0);
  fast_fft_256_res_2p8_buttCom(118, 119, 0);
  fast_fft_256_res_2p8_buttCom(120, 121, 0);
  fast_fft_256_res_2p8_buttCom(122, 123, 0);
  fast_fft_256_res_2p8_buttCom(124, 125, 0);
  fast_fft_256_res_2p8_buttCom(126, 127, 0);
  fast_fft_256_res_2p8_buttCom(128, 129, 0);
  fast_fft_256_res_2p8_buttCom(130, 131, 0);
  fast_fft_256_res_2p8_buttCom(132, 133, 0);
  fast_fft_256_res_2p8_buttCom(134, 135, 0);
  fast_fft_256_res_2p8_buttCom(136, 137, 0);
  fast_fft_256_res_2p8_buttCom(138, 139, 0);
  fast_fft_256_res_2p8_buttCom(140, 141, 0);
  fast_fft_256_res_2p8_buttCom(142, 143, 0);
  fast_fft_256_res_2p8_buttCom(144, 145, 0);
  fast_fft_256_res_2p8_buttCom(146, 147, 0);
  fast_fft_256_res_2p8_buttCom(148, 149, 0);
  fast_fft_256_res_2p8_buttCom(150, 151, 0);
  fast_fft_256_res_2p8_buttCom(152, 153, 0);
  fast_fft_256_res_2p8_buttCom(154, 155, 0);
  fast_fft_256_res_2p8_buttCom(156, 157, 0);
  fast_fft_256_res_2p8_buttCom(158, 159, 0);
  fast_fft_256_res_2p8_buttCom(160, 161, 0);
  fast_fft_256_res_2p8_buttCom(162, 163, 0);
  fast_fft_256_res_2p8_buttCom(164, 165, 0);
  fast_fft_256_res_2p8_buttCom(166, 167, 0);
  fast_fft_256_res_2p8_buttCom(168, 169, 0);
  fast_fft_256_res_2p8_buttCom(170, 171, 0);
  fast_fft_256_res_2p8_buttCom(172, 173, 0);
  fast_fft_256_res_2p8_buttCom(174, 175, 0);
  fast_fft_256_res_2p8_buttCom(176, 177, 0);
  fast_fft_256_res_2p8_buttCom(178, 179, 0);
  fast_fft_256_res_2p8_buttCom(180, 181, 0);
  fast_fft_256_res_2p8_buttCom(182, 183, 0);
  fast_fft_256_res_2p8_buttCom(184, 185, 0);
  fast_fft_256_res_2p8_buttCom(186, 187, 0);
  fast_fft_256_res_2p8_buttCom(188, 189, 0);
  fast_fft_256_res_2p8_buttCom(190, 191, 0);
  fast_fft_256_res_2p8_buttCom(192, 193, 0);
  fast_fft_256_res_2p8_buttCom(194, 195, 0);
  fast_fft_256_res_2p8_buttCom(196, 197, 0);
  fast_fft_256_res_2p8_buttCom(198, 199, 0);
  fast_fft_256_res_2p8_buttCom(200, 201, 0);
  fast_fft_256_res_2p8_buttCom(202, 203, 0);
  fast_fft_256_res_2p8_buttCom(204, 205, 0);
  fast_fft_256_res_2p8_buttCom(206, 207, 0);
  fast_fft_256_res_2p8_buttCom(208, 209, 0);
  fast_fft_256_res_2p8_buttCom(210, 211, 0);
  fast_fft_256_res_2p8_buttCom(212, 213, 0);
  fast_fft_256_res_2p8_buttCom(214, 215, 0);
  fast_fft_256_res_2p8_buttCom(216, 217, 0);
  fast_fft_256_res_2p8_buttCom(218, 219, 0);
  fast_fft_256_res_2p8_buttCom(220, 221, 0);
  fast_fft_256_res_2p8_buttCom(222, 223, 0);
  fast_fft_256_res_2p8_buttCom(224, 225, 0);
  fast_fft_256_res_2p8_buttCom(226, 227, 0);
  fast_fft_256_res_2p8_buttCom(228, 229, 0);
  fast_fft_256_res_2p8_buttCom(230, 231, 0);
  fast_fft_256_res_2p8_buttCom(232, 233, 0);
  fast_fft_256_res_2p8_buttCom(234, 235, 0);
  fast_fft_256_res_2p8_buttCom(236, 237, 0);
  fast_fft_256_res_2p8_buttCom(238, 239, 0);
  fast_fft_256_res_2p8_buttCom(240, 241, 0);
  fast_fft_256_res_2p8_buttCom(242, 243, 0);
  fast_fft_256_res_2p8_buttCom(244, 245, 0);
  fast_fft_256_res_2p8_buttCom(246, 247, 0);
  fast_fft_256_res_2p8_buttCom(248, 249, 0);
  fast_fft_256_res_2p8_buttCom(250, 251, 0);
  fast_fft_256_res_2p8_buttCom(252, 253, 0);
  fast_fft_256_res_2p8_buttCom(254, 255, 0);
  fast_fft_256_res_2p8_buttCom(0, 2, 0);
  fast_fft_256_res_2p8_buttCom(1, 3, 64);
  fast_fft_256_res_2p8_buttCom(4, 6, 0);
  fast_fft_256_res_2p8_buttCom(5, 7, 64);
  fast_fft_256_res_2p8_buttCom(8, 10, 0);
  fast_fft_256_res_2p8_buttCom(9, 11, 64);
  fast_fft_256_res_2p8_buttCom(12, 14, 0);
  fast_fft_256_res_2p8_buttCom(13, 15, 64);
  fast_fft_256_res_2p8_buttCom(16, 18, 0);
  fast_fft_256_res_2p8_buttCom(17, 19, 64);
  fast_fft_256_res_2p8_buttCom(20, 22, 0);
  fast_fft_256_res_2p8_buttCom(21, 23, 64);
  fast_fft_256_res_2p8_buttCom(24, 26, 0);
  fast_fft_256_res_2p8_buttCom(25, 27, 64);
  fast_fft_256_res_2p8_buttCom(28, 30, 0);
  fast_fft_256_res_2p8_buttCom(29, 31, 64);
  fast_fft_256_res_2p8_buttCom(32, 34, 0);
  fast_fft_256_res_2p8_buttCom(33, 35, 64);
  fast_fft_256_res_2p8_buttCom(36, 38, 0);
  fast_fft_256_res_2p8_buttCom(37, 39, 64);
  fast_fft_256_res_2p8_buttCom(40, 42, 0);
  fast_fft_256_res_2p8_buttCom(41, 43, 64);
  fast_fft_256_res_2p8_buttCom(44, 46, 0);
  fast_fft_256_res_2p8_buttCom(45, 47, 64);
  fast_fft_256_res_2p8_buttCom(48, 50, 0);
  fast_fft_256_res_2p8_buttCom(49, 51, 64);
  fast_fft_256_res_2p8_buttCom(52, 54, 0);
  fast_fft_256_res_2p8_buttCom(53, 55, 64);
  fast_fft_256_res_2p8_buttCom(56, 58, 0);
  fast_fft_256_res_2p8_buttCom(57, 59, 64);
  fast_fft_256_res_2p8_buttCom(60, 62, 0);
  fast_fft_256_res_2p8_buttCom(61, 63, 64);
  fast_fft_256_res_2p8_buttCom(64, 66, 0);
  fast_fft_256_res_2p8_buttCom(65, 67, 64);
  fast_fft_256_res_2p8_buttCom(68, 70, 0);
  fast_fft_256_res_2p8_buttCom(69, 71, 64);
  fast_fft_256_res_2p8_buttCom(72, 74, 0);
  fast_fft_256_res_2p8_buttCom(73, 75, 64);
  fast_fft_256_res_2p8_buttCom(76, 78, 0);
  fast_fft_256_res_2p8_buttCom(77, 79, 64);
  fast_fft_256_res_2p8_buttCom(80, 82, 0);
  fast_fft_256_res_2p8_buttCom(81, 83, 64);
  fast_fft_256_res_2p8_buttCom(84, 86, 0);
  fast_fft_256_res_2p8_buttCom(85, 87, 64);
  fast_fft_256_res_2p8_buttCom(88, 90, 0);
  fast_fft_256_res_2p8_buttCom(89, 91, 64);
  fast_fft_256_res_2p8_buttCom(92, 94, 0);
  fast_fft_256_res_2p8_buttCom(93, 95, 64);
  fast_fft_256_res_2p8_buttCom(96, 98, 0);
  fast_fft_256_res_2p8_buttCom(97, 99, 64);
  fast_fft_256_res_2p8_buttCom(100, 102, 0);
  fast_fft_256_res_2p8_buttCom(101, 103, 64);
  fast_fft_256_res_2p8_buttCom(104, 106, 0);
  fast_fft_256_res_2p8_buttCom(105, 107, 64);
  fast_fft_256_res_2p8_buttCom(108, 110, 0);
  fast_fft_256_res_2p8_buttCom(109, 111, 64);
  fast_fft_256_res_2p8_buttCom(112, 114, 0);
  fast_fft_256_res_2p8_buttCom(113, 115, 64);
  fast_fft_256_res_2p8_buttCom(116, 118, 0);
  fast_fft_256_res_2p8_buttCom(117, 119, 64);
  fast_fft_256_res_2p8_buttCom(120, 122, 0);
  fast_fft_256_res_2p8_buttCom(121, 123, 64);
  fast_fft_256_res_2p8_buttCom(124, 126, 0);
  fast_fft_256_res_2p8_buttCom(125, 127, 64);
  fast_fft_256_res_2p8_buttCom(128, 130, 0);
  fast_fft_256_res_2p8_buttCom(129, 131, 64);
  fast_fft_256_res_2p8_buttCom(132, 134, 0);
  fast_fft_256_res_2p8_buttCom(133, 135, 64);
  fast_fft_256_res_2p8_buttCom(136, 138, 0);
  fast_fft_256_res_2p8_buttCom(137, 139, 64);
  fast_fft_256_res_2p8_buttCom(140, 142, 0);
  fast_fft_256_res_2p8_buttCom(141, 143, 64);
  fast_fft_256_res_2p8_buttCom(144, 146, 0);
  fast_fft_256_res_2p8_buttCom(145, 147, 64);
  fast_fft_256_res_2p8_buttCom(148, 150, 0);
  fast_fft_256_res_2p8_buttCom(149, 151, 64);
  fast_fft_256_res_2p8_buttCom(152, 154, 0);
  fast_fft_256_res_2p8_buttCom(153, 155, 64);
  fast_fft_256_res_2p8_buttCom(156, 158, 0);
  fast_fft_256_res_2p8_buttCom(157, 159, 64);
  fast_fft_256_res_2p8_buttCom(160, 162, 0);
  fast_fft_256_res_2p8_buttCom(161, 163, 64);
  fast_fft_256_res_2p8_buttCom(164, 166, 0);
  fast_fft_256_res_2p8_buttCom(165, 167, 64);
  fast_fft_256_res_2p8_buttCom(168, 170, 0);
  fast_fft_256_res_2p8_buttCom(169, 171, 64);
  fast_fft_256_res_2p8_buttCom(172, 174, 0);
  fast_fft_256_res_2p8_buttCom(173, 175, 64);
  fast_fft_256_res_2p8_buttCom(176, 178, 0);
  fast_fft_256_res_2p8_buttCom(177, 179, 64);
  fast_fft_256_res_2p8_buttCom(180, 182, 0);
  fast_fft_256_res_2p8_buttCom(181, 183, 64);
  fast_fft_256_res_2p8_buttCom(184, 186, 0);
  fast_fft_256_res_2p8_buttCom(185, 187, 64);
  fast_fft_256_res_2p8_buttCom(188, 190, 0);
  fast_fft_256_res_2p8_buttCom(189, 191, 64);
  fast_fft_256_res_2p8_buttCom(192, 194, 0);
  fast_fft_256_res_2p8_buttCom(193, 195, 64);
  fast_fft_256_res_2p8_buttCom(196, 198, 0);
  fast_fft_256_res_2p8_buttCom(197, 199, 64);
  fast_fft_256_res_2p8_buttCom(200, 202, 0);
  fast_fft_256_res_2p8_buttCom(201, 203, 64);
  fast_fft_256_res_2p8_buttCom(204, 206, 0);
  fast_fft_256_res_2p8_buttCom(205, 207, 64);
  fast_fft_256_res_2p8_buttCom(208, 210, 0);
  fast_fft_256_res_2p8_buttCom(209, 211, 64);
  fast_fft_256_res_2p8_buttCom(212, 214, 0);
  fast_fft_256_res_2p8_buttCom(213, 215, 64);
  fast_fft_256_res_2p8_buttCom(216, 218, 0);
  fast_fft_256_res_2p8_buttCom(217, 219, 64);
  fast_fft_256_res_2p8_buttCom(220, 222, 0);
  fast_fft_256_res_2p8_buttCom(221, 223, 64);
  fast_fft_256_res_2p8_buttCom(224, 226, 0);
  fast_fft_256_res_2p8_buttCom(225, 227, 64);
  fast_fft_256_res_2p8_buttCom(228, 230, 0);
  fast_fft_256_res_2p8_buttCom(229, 231, 64);
  fast_fft_256_res_2p8_buttCom(232, 234, 0);
  fast_fft_256_res_2p8_buttCom(233, 235, 64);
  fast_fft_256_res_2p8_buttCom(236, 238, 0);
  fast_fft_256_res_2p8_buttCom(237, 239, 64);
  fast_fft_256_res_2p8_buttCom(240, 242, 0);
  fast_fft_256_res_2p8_buttCom(241, 243, 64);
  fast_fft_256_res_2p8_buttCom(244, 246, 0);
  fast_fft_256_res_2p8_buttCom(245, 247, 64);
  fast_fft_256_res_2p8_buttCom(248, 250, 0);
  fast_fft_256_res_2p8_buttCom(249, 251, 64);
  fast_fft_256_res_2p8_buttCom(252, 254, 0);
  fast_fft_256_res_2p8_buttCom(253, 255, 64);
  fast_fft_256_res_2p8_buttCom(0, 4, 0);
  fast_fft_256_res_2p8_buttCom(1, 5, 32);
  fast_fft_256_res_2p8_buttCom(2, 6, 64);
  fast_fft_256_res_2p8_buttCom(3, 7, 96);
  fast_fft_256_res_2p8_buttCom(8, 12, 0);
  fast_fft_256_res_2p8_buttCom(9, 13, 32);
  fast_fft_256_res_2p8_buttCom(10, 14, 64);
  fast_fft_256_res_2p8_buttCom(11, 15, 96);
  fast_fft_256_res_2p8_buttCom(16, 20, 0);
  fast_fft_256_res_2p8_buttCom(17, 21, 32);
  fast_fft_256_res_2p8_buttCom(18, 22, 64);
  fast_fft_256_res_2p8_buttCom(19, 23, 96);
  fast_fft_256_res_2p8_buttCom(24, 28, 0);
  fast_fft_256_res_2p8_buttCom(25, 29, 32);
  fast_fft_256_res_2p8_buttCom(26, 30, 64);
  fast_fft_256_res_2p8_buttCom(27, 31, 96);
  fast_fft_256_res_2p8_buttCom(32, 36, 0);
  fast_fft_256_res_2p8_buttCom(33, 37, 32);
  fast_fft_256_res_2p8_buttCom(34, 38, 64);
  fast_fft_256_res_2p8_buttCom(35, 39, 96);
  fast_fft_256_res_2p8_buttCom(40, 44, 0);
  fast_fft_256_res_2p8_buttCom(41, 45, 32);
  fast_fft_256_res_2p8_buttCom(42, 46, 64);
  fast_fft_256_res_2p8_buttCom(43, 47, 96);
  fast_fft_256_res_2p8_buttCom(48, 52, 0);
  fast_fft_256_res_2p8_buttCom(49, 53, 32);
  fast_fft_256_res_2p8_buttCom(50, 54, 64);
  fast_fft_256_res_2p8_buttCom(51, 55, 96);
  fast_fft_256_res_2p8_buttCom(56, 60, 0);
  fast_fft_256_res_2p8_buttCom(57, 61, 32);
  fast_fft_256_res_2p8_buttCom(58, 62, 64);
  fast_fft_256_res_2p8_buttCom(59, 63, 96);
  fast_fft_256_res_2p8_buttCom(64, 68, 0);
  fast_fft_256_res_2p8_buttCom(65, 69, 32);
  fast_fft_256_res_2p8_buttCom(66, 70, 64);
  fast_fft_256_res_2p8_buttCom(67, 71, 96);
  fast_fft_256_res_2p8_buttCom(72, 76, 0);
  fast_fft_256_res_2p8_buttCom(73, 77, 32);
  fast_fft_256_res_2p8_buttCom(74, 78, 64);
  fast_fft_256_res_2p8_buttCom(75, 79, 96);
  fast_fft_256_res_2p8_buttCom(80, 84, 0);
  fast_fft_256_res_2p8_buttCom(81, 85, 32);
  fast_fft_256_res_2p8_buttCom(82, 86, 64);
  fast_fft_256_res_2p8_buttCom(83, 87, 96);
  fast_fft_256_res_2p8_buttCom(88, 92, 0);
  fast_fft_256_res_2p8_buttCom(89, 93, 32);
  fast_fft_256_res_2p8_buttCom(90, 94, 64);
  fast_fft_256_res_2p8_buttCom(91, 95, 96);
  fast_fft_256_res_2p8_buttCom(96, 100, 0);
  fast_fft_256_res_2p8_buttCom(97, 101, 32);
  fast_fft_256_res_2p8_buttCom(98, 102, 64);
  fast_fft_256_res_2p8_buttCom(99, 103, 96);
  fast_fft_256_res_2p8_buttCom(104, 108, 0);
  fast_fft_256_res_2p8_buttCom(105, 109, 32);
  fast_fft_256_res_2p8_buttCom(106, 110, 64);
  fast_fft_256_res_2p8_buttCom(107, 111, 96);
  fast_fft_256_res_2p8_buttCom(112, 116, 0);
  fast_fft_256_res_2p8_buttCom(113, 117, 32);
  fast_fft_256_res_2p8_buttCom(114, 118, 64);
  fast_fft_256_res_2p8_buttCom(115, 119, 96);
  fast_fft_256_res_2p8_buttCom(120, 124, 0);
  fast_fft_256_res_2p8_buttCom(121, 125, 32);
  fast_fft_256_res_2p8_buttCom(122, 126, 64);
  fast_fft_256_res_2p8_buttCom(123, 127, 96);
  fast_fft_256_res_2p8_buttCom(128, 132, 0);
  fast_fft_256_res_2p8_buttCom(129, 133, 32);
  fast_fft_256_res_2p8_buttCom(130, 134, 64);
  fast_fft_256_res_2p8_buttCom(131, 135, 96);
  fast_fft_256_res_2p8_buttCom(136, 140, 0);
  fast_fft_256_res_2p8_buttCom(137, 141, 32);
  fast_fft_256_res_2p8_buttCom(138, 142, 64);
  fast_fft_256_res_2p8_buttCom(139, 143, 96);
  fast_fft_256_res_2p8_buttCom(144, 148, 0);
  fast_fft_256_res_2p8_buttCom(145, 149, 32);
  fast_fft_256_res_2p8_buttCom(146, 150, 64);
  fast_fft_256_res_2p8_buttCom(147, 151, 96);
  fast_fft_256_res_2p8_buttCom(152, 156, 0);
  fast_fft_256_res_2p8_buttCom(153, 157, 32);
  fast_fft_256_res_2p8_buttCom(154, 158, 64);
  fast_fft_256_res_2p8_buttCom(155, 159, 96);
  fast_fft_256_res_2p8_buttCom(160, 164, 0);
  fast_fft_256_res_2p8_buttCom(161, 165, 32);
  fast_fft_256_res_2p8_buttCom(162, 166, 64);
  fast_fft_256_res_2p8_buttCom(163, 167, 96);
  fast_fft_256_res_2p8_buttCom(168, 172, 0);
  fast_fft_256_res_2p8_buttCom(169, 173, 32);
  fast_fft_256_res_2p8_buttCom(170, 174, 64);
  fast_fft_256_res_2p8_buttCom(171, 175, 96);
  fast_fft_256_res_2p8_buttCom(176, 180, 0);
  fast_fft_256_res_2p8_buttCom(177, 181, 32);
  fast_fft_256_res_2p8_buttCom(178, 182, 64);
  fast_fft_256_res_2p8_buttCom(179, 183, 96);
  fast_fft_256_res_2p8_buttCom(184, 188, 0);
  fast_fft_256_res_2p8_buttCom(185, 189, 32);
  fast_fft_256_res_2p8_buttCom(186, 190, 64);
  fast_fft_256_res_2p8_buttCom(187, 191, 96);
  fast_fft_256_res_2p8_buttCom(192, 196, 0);
  fast_fft_256_res_2p8_buttCom(193, 197, 32);
  fast_fft_256_res_2p8_buttCom(194, 198, 64);
  fast_fft_256_res_2p8_buttCom(195, 199, 96);
  fast_fft_256_res_2p8_buttCom(200, 204, 0);
  fast_fft_256_res_2p8_buttCom(201, 205, 32);
  fast_fft_256_res_2p8_buttCom(202, 206, 64);
  fast_fft_256_res_2p8_buttCom(203, 207, 96);
  fast_fft_256_res_2p8_buttCom(208, 212, 0);
  fast_fft_256_res_2p8_buttCom(209, 213, 32);
  fast_fft_256_res_2p8_buttCom(210, 214, 64);
  fast_fft_256_res_2p8_buttCom(211, 215, 96);
  fast_fft_256_res_2p8_buttCom(216, 220, 0);
  fast_fft_256_res_2p8_buttCom(217, 221, 32);
  fast_fft_256_res_2p8_buttCom(218, 222, 64);
  fast_fft_256_res_2p8_buttCom(219, 223, 96);
  fast_fft_256_res_2p8_buttCom(224, 228, 0);
  fast_fft_256_res_2p8_buttCom(225, 229, 32);
  fast_fft_256_res_2p8_buttCom(226, 230, 64);
  fast_fft_256_res_2p8_buttCom(227, 231, 96);
  fast_fft_256_res_2p8_buttCom(232, 236, 0);
  fast_fft_256_res_2p8_buttCom(233, 237, 32);
  fast_fft_256_res_2p8_buttCom(234, 238, 64);
  fast_fft_256_res_2p8_buttCom(235, 239, 96);
  fast_fft_256_res_2p8_buttCom(240, 244, 0);
  fast_fft_256_res_2p8_buttCom(241, 245, 32);
  fast_fft_256_res_2p8_buttCom(242, 246, 64);
  fast_fft_256_res_2p8_buttCom(243, 247, 96);
  fast_fft_256_res_2p8_buttCom(248, 252, 0);
  fast_fft_256_res_2p8_buttCom(249, 253, 32);
  fast_fft_256_res_2p8_buttCom(250, 254, 64);
  fast_fft_256_res_2p8_buttCom(251, 255, 96);
  fast_fft_256_res_2p8_buttCom(0, 8, 0);
  fast_fft_256_res_2p8_buttCom(1, 9, 16);
  fast_fft_256_res_2p8_buttCom(2, 10, 32);
  fast_fft_256_res_2p8_buttCom(3, 11, 48);
  fast_fft_256_res_2p8_buttCom(4, 12, 64);
  fast_fft_256_res_2p8_buttCom(5, 13, 80);
  fast_fft_256_res_2p8_buttCom(6, 14, 96);
  fast_fft_256_res_2p8_buttCom(7, 15, 112);
  fast_fft_256_res_2p8_buttCom(16, 24, 0);
  fast_fft_256_res_2p8_buttCom(17, 25, 16);
  fast_fft_256_res_2p8_buttCom(18, 26, 32);
  fast_fft_256_res_2p8_buttCom(19, 27, 48);
  fast_fft_256_res_2p8_buttCom(20, 28, 64);
  fast_fft_256_res_2p8_buttCom(21, 29, 80);
  fast_fft_256_res_2p8_buttCom(22, 30, 96);
  fast_fft_256_res_2p8_buttCom(23, 31, 112);
  fast_fft_256_res_2p8_buttCom(32, 40, 0);
  fast_fft_256_res_2p8_buttCom(33, 41, 16);
  fast_fft_256_res_2p8_buttCom(34, 42, 32);
  fast_fft_256_res_2p8_buttCom(35, 43, 48);
  fast_fft_256_res_2p8_buttCom(36, 44, 64);
  fast_fft_256_res_2p8_buttCom(37, 45, 80);
  fast_fft_256_res_2p8_buttCom(38, 46, 96);
  fast_fft_256_res_2p8_buttCom(39, 47, 112);
  fast_fft_256_res_2p8_buttCom(48, 56, 0);
  fast_fft_256_res_2p8_buttCom(49, 57, 16);
  fast_fft_256_res_2p8_buttCom(50, 58, 32);
  fast_fft_256_res_2p8_buttCom(51, 59, 48);
  fast_fft_256_res_2p8_buttCom(52, 60, 64);
  fast_fft_256_res_2p8_buttCom(53, 61, 80);
  fast_fft_256_res_2p8_buttCom(54, 62, 96);
  fast_fft_256_res_2p8_buttCom(55, 63, 112);
  fast_fft_256_res_2p8_buttCom(64, 72, 0);
  fast_fft_256_res_2p8_buttCom(65, 73, 16);
  fast_fft_256_res_2p8_buttCom(66, 74, 32);
  fast_fft_256_res_2p8_buttCom(67, 75, 48);
  fast_fft_256_res_2p8_buttCom(68, 76, 64);
  fast_fft_256_res_2p8_buttCom(69, 77, 80);
  fast_fft_256_res_2p8_buttCom(70, 78, 96);
  fast_fft_256_res_2p8_buttCom(71, 79, 112);
  fast_fft_256_res_2p8_buttCom(80, 88, 0);
  fast_fft_256_res_2p8_buttCom(81, 89, 16);
  fast_fft_256_res_2p8_buttCom(82, 90, 32);
  fast_fft_256_res_2p8_buttCom(83, 91, 48);
  fast_fft_256_res_2p8_buttCom(84, 92, 64);
  fast_fft_256_res_2p8_buttCom(85, 93, 80);
  fast_fft_256_res_2p8_buttCom(86, 94, 96);
  fast_fft_256_res_2p8_buttCom(87, 95, 112);
  fast_fft_256_res_2p8_buttCom(96, 104, 0);
  fast_fft_256_res_2p8_buttCom(97, 105, 16);
  fast_fft_256_res_2p8_buttCom(98, 106, 32);
  fast_fft_256_res_2p8_buttCom(99, 107, 48);
  fast_fft_256_res_2p8_buttCom(100, 108, 64);
  fast_fft_256_res_2p8_buttCom(101, 109, 80);
  fast_fft_256_res_2p8_buttCom(102, 110, 96);
  fast_fft_256_res_2p8_buttCom(103, 111, 112);
  fast_fft_256_res_2p8_buttCom(112, 120, 0);
  fast_fft_256_res_2p8_buttCom(113, 121, 16);
  fast_fft_256_res_2p8_buttCom(114, 122, 32);
  fast_fft_256_res_2p8_buttCom(115, 123, 48);
  fast_fft_256_res_2p8_buttCom(116, 124, 64);
  fast_fft_256_res_2p8_buttCom(117, 125, 80);
  fast_fft_256_res_2p8_buttCom(118, 126, 96);
  fast_fft_256_res_2p8_buttCom(119, 127, 112);
  fast_fft_256_res_2p8_buttCom(128, 136, 0);
  fast_fft_256_res_2p8_buttCom(129, 137, 16);
  fast_fft_256_res_2p8_buttCom(130, 138, 32);
  fast_fft_256_res_2p8_buttCom(131, 139, 48);
  fast_fft_256_res_2p8_buttCom(132, 140, 64);
  fast_fft_256_res_2p8_buttCom(133, 141, 80);
  fast_fft_256_res_2p8_buttCom(134, 142, 96);
  fast_fft_256_res_2p8_buttCom(135, 143, 112);
  fast_fft_256_res_2p8_buttCom(144, 152, 0);
  fast_fft_256_res_2p8_buttCom(145, 153, 16);
  fast_fft_256_res_2p8_buttCom(146, 154, 32);
  fast_fft_256_res_2p8_buttCom(147, 155, 48);
  fast_fft_256_res_2p8_buttCom(148, 156, 64);
  fast_fft_256_res_2p8_buttCom(149, 157, 80);
  fast_fft_256_res_2p8_buttCom(150, 158, 96);
  fast_fft_256_res_2p8_buttCom(151, 159, 112);
  fast_fft_256_res_2p8_buttCom(160, 168, 0);
  fast_fft_256_res_2p8_buttCom(161, 169, 16);
  fast_fft_256_res_2p8_buttCom(162, 170, 32);
  fast_fft_256_res_2p8_buttCom(163, 171, 48);
  fast_fft_256_res_2p8_buttCom(164, 172, 64);
  fast_fft_256_res_2p8_buttCom(165, 173, 80);
  fast_fft_256_res_2p8_buttCom(166, 174, 96);
  fast_fft_256_res_2p8_buttCom(167, 175, 112);
  fast_fft_256_res_2p8_buttCom(176, 184, 0);
  fast_fft_256_res_2p8_buttCom(177, 185, 16);
  fast_fft_256_res_2p8_buttCom(178, 186, 32);
  fast_fft_256_res_2p8_buttCom(179, 187, 48);
  fast_fft_256_res_2p8_buttCom(180, 188, 64);
  fast_fft_256_res_2p8_buttCom(181, 189, 80);
  fast_fft_256_res_2p8_buttCom(182, 190, 96);
  fast_fft_256_res_2p8_buttCom(183, 191, 112);
  fast_fft_256_res_2p8_buttCom(192, 200, 0);
  fast_fft_256_res_2p8_buttCom(193, 201, 16);
  fast_fft_256_res_2p8_buttCom(194, 202, 32);
  fast_fft_256_res_2p8_buttCom(195, 203, 48);
  fast_fft_256_res_2p8_buttCom(196, 204, 64);
  fast_fft_256_res_2p8_buttCom(197, 205, 80);
  fast_fft_256_res_2p8_buttCom(198, 206, 96);
  fast_fft_256_res_2p8_buttCom(199, 207, 112);
  fast_fft_256_res_2p8_buttCom(208, 216, 0);
  fast_fft_256_res_2p8_buttCom(209, 217, 16);
  fast_fft_256_res_2p8_buttCom(210, 218, 32);
  fast_fft_256_res_2p8_buttCom(211, 219, 48);
  fast_fft_256_res_2p8_buttCom(212, 220, 64);
  fast_fft_256_res_2p8_buttCom(213, 221, 80);
  fast_fft_256_res_2p8_buttCom(214, 222, 96);
  fast_fft_256_res_2p8_buttCom(215, 223, 112);
  fast_fft_256_res_2p8_buttCom(224, 232, 0);
  fast_fft_256_res_2p8_buttCom(225, 233, 16);
  fast_fft_256_res_2p8_buttCom(226, 234, 32);
  fast_fft_256_res_2p8_buttCom(227, 235, 48);
  fast_fft_256_res_2p8_buttCom(228, 236, 64);
  fast_fft_256_res_2p8_buttCom(229, 237, 80);
  fast_fft_256_res_2p8_buttCom(230, 238, 96);
  fast_fft_256_res_2p8_buttCom(231, 239, 112);
  fast_fft_256_res_2p8_buttCom(240, 248, 0);
  fast_fft_256_res_2p8_buttCom(241, 249, 16);
  fast_fft_256_res_2p8_buttCom(242, 250, 32);
  fast_fft_256_res_2p8_buttCom(243, 251, 48);
  fast_fft_256_res_2p8_buttCom(244, 252, 64);
  fast_fft_256_res_2p8_buttCom(245, 253, 80);
  fast_fft_256_res_2p8_buttCom(246, 254, 96);
  fast_fft_256_res_2p8_buttCom(247, 255, 112);
  fast_fft_256_res_2p8_buttCom(0, 16, 0);
  fast_fft_256_res_2p8_buttCom(1, 17, 8);
  fast_fft_256_res_2p8_buttCom(2, 18, 16);
  fast_fft_256_res_2p8_buttCom(3, 19, 24);
  fast_fft_256_res_2p8_buttCom(4, 20, 32);
  fast_fft_256_res_2p8_buttCom(5, 21, 40);
  fast_fft_256_res_2p8_buttCom(6, 22, 48);
  fast_fft_256_res_2p8_buttCom(7, 23, 56);
  fast_fft_256_res_2p8_buttCom(8, 24, 64);
  fast_fft_256_res_2p8_buttCom(9, 25, 72);
  fast_fft_256_res_2p8_buttCom(10, 26, 80);
  fast_fft_256_res_2p8_buttCom(11, 27, 88);
  fast_fft_256_res_2p8_buttCom(12, 28, 96);
  fast_fft_256_res_2p8_buttCom(13, 29, 104);
  fast_fft_256_res_2p8_buttCom(14, 30, 112);
  fast_fft_256_res_2p8_buttCom(15, 31, 120);
  fast_fft_256_res_2p8_buttCom(32, 48, 0);
  fast_fft_256_res_2p8_buttCom(33, 49, 8);
  fast_fft_256_res_2p8_buttCom(34, 50, 16);
  fast_fft_256_res_2p8_buttCom(35, 51, 24);
  fast_fft_256_res_2p8_buttCom(36, 52, 32);
  fast_fft_256_res_2p8_buttCom(37, 53, 40);
  fast_fft_256_res_2p8_buttCom(38, 54, 48);
  fast_fft_256_res_2p8_buttCom(39, 55, 56);
  fast_fft_256_res_2p8_buttCom(40, 56, 64);
  fast_fft_256_res_2p8_buttCom(41, 57, 72);
  fast_fft_256_res_2p8_buttCom(42, 58, 80);
  fast_fft_256_res_2p8_buttCom(43, 59, 88);
  fast_fft_256_res_2p8_buttCom(44, 60, 96);
  fast_fft_256_res_2p8_buttCom(45, 61, 104);
  fast_fft_256_res_2p8_buttCom(46, 62, 112);
  fast_fft_256_res_2p8_buttCom(47, 63, 120);
  fast_fft_256_res_2p8_buttCom(64, 80, 0);
  fast_fft_256_res_2p8_buttCom(65, 81, 8);
  fast_fft_256_res_2p8_buttCom(66, 82, 16);
  fast_fft_256_res_2p8_buttCom(67, 83, 24);
  fast_fft_256_res_2p8_buttCom(68, 84, 32);
  fast_fft_256_res_2p8_buttCom(69, 85, 40);
  fast_fft_256_res_2p8_buttCom(70, 86, 48);
  fast_fft_256_res_2p8_buttCom(71, 87, 56);
  fast_fft_256_res_2p8_buttCom(72, 88, 64);
  fast_fft_256_res_2p8_buttCom(73, 89, 72);
  fast_fft_256_res_2p8_buttCom(74, 90, 80);
  fast_fft_256_res_2p8_buttCom(75, 91, 88);
  fast_fft_256_res_2p8_buttCom(76, 92, 96);
  fast_fft_256_res_2p8_buttCom(77, 93, 104);
  fast_fft_256_res_2p8_buttCom(78, 94, 112);
  fast_fft_256_res_2p8_buttCom(79, 95, 120);
  fast_fft_256_res_2p8_buttCom(96, 112, 0);
  fast_fft_256_res_2p8_buttCom(97, 113, 8);
  fast_fft_256_res_2p8_buttCom(98, 114, 16);
  fast_fft_256_res_2p8_buttCom(99, 115, 24);
  fast_fft_256_res_2p8_buttCom(100, 116, 32);
  fast_fft_256_res_2p8_buttCom(101, 117, 40);
  fast_fft_256_res_2p8_buttCom(102, 118, 48);
  fast_fft_256_res_2p8_buttCom(103, 119, 56);
  fast_fft_256_res_2p8_buttCom(104, 120, 64);
  fast_fft_256_res_2p8_buttCom(105, 121, 72);
  fast_fft_256_res_2p8_buttCom(106, 122, 80);
  fast_fft_256_res_2p8_buttCom(107, 123, 88);
  fast_fft_256_res_2p8_buttCom(108, 124, 96);
  fast_fft_256_res_2p8_buttCom(109, 125, 104);
  fast_fft_256_res_2p8_buttCom(110, 126, 112);
  fast_fft_256_res_2p8_buttCom(111, 127, 120);
  fast_fft_256_res_2p8_buttCom(128, 144, 0);
  fast_fft_256_res_2p8_buttCom(129, 145, 8);
  fast_fft_256_res_2p8_buttCom(130, 146, 16);
  fast_fft_256_res_2p8_buttCom(131, 147, 24);
  fast_fft_256_res_2p8_buttCom(132, 148, 32);
  fast_fft_256_res_2p8_buttCom(133, 149, 40);
  fast_fft_256_res_2p8_buttCom(134, 150, 48);
  fast_fft_256_res_2p8_buttCom(135, 151, 56);
  fast_fft_256_res_2p8_buttCom(136, 152, 64);
  fast_fft_256_res_2p8_buttCom(137, 153, 72);
  fast_fft_256_res_2p8_buttCom(138, 154, 80);
  fast_fft_256_res_2p8_buttCom(139, 155, 88);
  fast_fft_256_res_2p8_buttCom(140, 156, 96);
  fast_fft_256_res_2p8_buttCom(141, 157, 104);
  fast_fft_256_res_2p8_buttCom(142, 158, 112);
  fast_fft_256_res_2p8_buttCom(143, 159, 120);
  fast_fft_256_res_2p8_buttCom(160, 176, 0);
  fast_fft_256_res_2p8_buttCom(161, 177, 8);
  fast_fft_256_res_2p8_buttCom(162, 178, 16);
  fast_fft_256_res_2p8_buttCom(163, 179, 24);
  fast_fft_256_res_2p8_buttCom(164, 180, 32);
  fast_fft_256_res_2p8_buttCom(165, 181, 40);
  fast_fft_256_res_2p8_buttCom(166, 182, 48);
  fast_fft_256_res_2p8_buttCom(167, 183, 56);
  fast_fft_256_res_2p8_buttCom(168, 184, 64);
  fast_fft_256_res_2p8_buttCom(169, 185, 72);
  fast_fft_256_res_2p8_buttCom(170, 186, 80);
  fast_fft_256_res_2p8_buttCom(171, 187, 88);
  fast_fft_256_res_2p8_buttCom(172, 188, 96);
  fast_fft_256_res_2p8_buttCom(173, 189, 104);
  fast_fft_256_res_2p8_buttCom(174, 190, 112);
  fast_fft_256_res_2p8_buttCom(175, 191, 120);
  fast_fft_256_res_2p8_buttCom(192, 208, 0);
  fast_fft_256_res_2p8_buttCom(193, 209, 8);
  fast_fft_256_res_2p8_buttCom(194, 210, 16);
  fast_fft_256_res_2p8_buttCom(195, 211, 24);
  fast_fft_256_res_2p8_buttCom(196, 212, 32);
  fast_fft_256_res_2p8_buttCom(197, 213, 40);
  fast_fft_256_res_2p8_buttCom(198, 214, 48);
  fast_fft_256_res_2p8_buttCom(199, 215, 56);
  fast_fft_256_res_2p8_buttCom(200, 216, 64);
  fast_fft_256_res_2p8_buttCom(201, 217, 72);
  fast_fft_256_res_2p8_buttCom(202, 218, 80);
  fast_fft_256_res_2p8_buttCom(203, 219, 88);
  fast_fft_256_res_2p8_buttCom(204, 220, 96);
  fast_fft_256_res_2p8_buttCom(205, 221, 104);
  fast_fft_256_res_2p8_buttCom(206, 222, 112);
  fast_fft_256_res_2p8_buttCom(207, 223, 120);
  fast_fft_256_res_2p8_buttCom(224, 240, 0);
  fast_fft_256_res_2p8_buttCom(225, 241, 8);
  fast_fft_256_res_2p8_buttCom(226, 242, 16);
  fast_fft_256_res_2p8_buttCom(227, 243, 24);
  fast_fft_256_res_2p8_buttCom(228, 244, 32);
  fast_fft_256_res_2p8_buttCom(229, 245, 40);
  fast_fft_256_res_2p8_buttCom(230, 246, 48);
  fast_fft_256_res_2p8_buttCom(231, 247, 56);
  fast_fft_256_res_2p8_buttCom(232, 248, 64);
  fast_fft_256_res_2p8_buttCom(233, 249, 72);
  fast_fft_256_res_2p8_buttCom(234, 250, 80);
  fast_fft_256_res_2p8_buttCom(235, 251, 88);
  fast_fft_256_res_2p8_buttCom(236, 252, 96);
  fast_fft_256_res_2p8_buttCom(237, 253, 104);
  fast_fft_256_res_2p8_buttCom(238, 254, 112);
  fast_fft_256_res_2p8_buttCom(239, 255, 120);
  fast_fft_256_res_2p8_buttCom(0, 32, 0);
  fast_fft_256_res_2p8_buttCom(1, 33, 4);
  fast_fft_256_res_2p8_buttCom(2, 34, 8);
  fast_fft_256_res_2p8_buttCom(3, 35, 12);
  fast_fft_256_res_2p8_buttCom(4, 36, 16);
  fast_fft_256_res_2p8_buttCom(5, 37, 20);
  fast_fft_256_res_2p8_buttCom(6, 38, 24);
  fast_fft_256_res_2p8_buttCom(7, 39, 28);
  fast_fft_256_res_2p8_buttCom(8, 40, 32);
  fast_fft_256_res_2p8_buttCom(9, 41, 36);
  fast_fft_256_res_2p8_buttCom(10, 42, 40);
  fast_fft_256_res_2p8_buttCom(11, 43, 44);
  fast_fft_256_res_2p8_buttCom(12, 44, 48);
  fast_fft_256_res_2p8_buttCom(13, 45, 52);
  fast_fft_256_res_2p8_buttCom(14, 46, 56);
  fast_fft_256_res_2p8_buttCom(15, 47, 60);
  fast_fft_256_res_2p8_buttCom(16, 48, 64);
  fast_fft_256_res_2p8_buttCom(17, 49, 68);
  fast_fft_256_res_2p8_buttCom(18, 50, 72);
  fast_fft_256_res_2p8_buttCom(19, 51, 76);
  fast_fft_256_res_2p8_buttCom(20, 52, 80);
  fast_fft_256_res_2p8_buttCom(21, 53, 84);
  fast_fft_256_res_2p8_buttCom(22, 54, 88);
  fast_fft_256_res_2p8_buttCom(23, 55, 92);
  fast_fft_256_res_2p8_buttCom(24, 56, 96);
  fast_fft_256_res_2p8_buttCom(25, 57, 100);
  fast_fft_256_res_2p8_buttCom(26, 58, 104);
  fast_fft_256_res_2p8_buttCom(27, 59, 108);
  fast_fft_256_res_2p8_buttCom(28, 60, 112);
  fast_fft_256_res_2p8_buttCom(29, 61, 116);
  fast_fft_256_res_2p8_buttCom(30, 62, 120);
  fast_fft_256_res_2p8_buttCom(31, 63, 124);
  fast_fft_256_res_2p8_buttCom(64, 96, 0);
  fast_fft_256_res_2p8_buttCom(65, 97, 4);
  fast_fft_256_res_2p8_buttCom(66, 98, 8);
  fast_fft_256_res_2p8_buttCom(67, 99, 12);
  fast_fft_256_res_2p8_buttCom(68, 100, 16);
  fast_fft_256_res_2p8_buttCom(69, 101, 20);
  fast_fft_256_res_2p8_buttCom(70, 102, 24);
  fast_fft_256_res_2p8_buttCom(71, 103, 28);
  fast_fft_256_res_2p8_buttCom(72, 104, 32);
  fast_fft_256_res_2p8_buttCom(73, 105, 36);
  fast_fft_256_res_2p8_buttCom(74, 106, 40);
  fast_fft_256_res_2p8_buttCom(75, 107, 44);
  fast_fft_256_res_2p8_buttCom(76, 108, 48);
  fast_fft_256_res_2p8_buttCom(77, 109, 52);
  fast_fft_256_res_2p8_buttCom(78, 110, 56);
  fast_fft_256_res_2p8_buttCom(79, 111, 60);
  fast_fft_256_res_2p8_buttCom(80, 112, 64);
  fast_fft_256_res_2p8_buttCom(81, 113, 68);
  fast_fft_256_res_2p8_buttCom(82, 114, 72);
  fast_fft_256_res_2p8_buttCom(83, 115, 76);
  fast_fft_256_res_2p8_buttCom(84, 116, 80);
  fast_fft_256_res_2p8_buttCom(85, 117, 84);
  fast_fft_256_res_2p8_buttCom(86, 118, 88);
  fast_fft_256_res_2p8_buttCom(87, 119, 92);
  fast_fft_256_res_2p8_buttCom(88, 120, 96);
  fast_fft_256_res_2p8_buttCom(89, 121, 100);
  fast_fft_256_res_2p8_buttCom(90, 122, 104);
  fast_fft_256_res_2p8_buttCom(91, 123, 108);
  fast_fft_256_res_2p8_buttCom(92, 124, 112);
  fast_fft_256_res_2p8_buttCom(93, 125, 116);
  fast_fft_256_res_2p8_buttCom(94, 126, 120);
  fast_fft_256_res_2p8_buttCom(95, 127, 124);
  fast_fft_256_res_2p8_buttCom(128, 160, 0);
  fast_fft_256_res_2p8_buttCom(129, 161, 4);
  fast_fft_256_res_2p8_buttCom(130, 162, 8);
  fast_fft_256_res_2p8_buttCom(131, 163, 12);
  fast_fft_256_res_2p8_buttCom(132, 164, 16);
  fast_fft_256_res_2p8_buttCom(133, 165, 20);
  fast_fft_256_res_2p8_buttCom(134, 166, 24);
  fast_fft_256_res_2p8_buttCom(135, 167, 28);
  fast_fft_256_res_2p8_buttCom(136, 168, 32);
  fast_fft_256_res_2p8_buttCom(137, 169, 36);
  fast_fft_256_res_2p8_buttCom(138, 170, 40);
  fast_fft_256_res_2p8_buttCom(139, 171, 44);
  fast_fft_256_res_2p8_buttCom(140, 172, 48);
  fast_fft_256_res_2p8_buttCom(141, 173, 52);
  fast_fft_256_res_2p8_buttCom(142, 174, 56);
  fast_fft_256_res_2p8_buttCom(143, 175, 60);
  fast_fft_256_res_2p8_buttCom(144, 176, 64);
  fast_fft_256_res_2p8_buttCom(145, 177, 68);
  fast_fft_256_res_2p8_buttCom(146, 178, 72);
  fast_fft_256_res_2p8_buttCom(147, 179, 76);
  fast_fft_256_res_2p8_buttCom(148, 180, 80);
  fast_fft_256_res_2p8_buttCom(149, 181, 84);
  fast_fft_256_res_2p8_buttCom(150, 182, 88);
  fast_fft_256_res_2p8_buttCom(151, 183, 92);
  fast_fft_256_res_2p8_buttCom(152, 184, 96);
  fast_fft_256_res_2p8_buttCom(153, 185, 100);
  fast_fft_256_res_2p8_buttCom(154, 186, 104);
  fast_fft_256_res_2p8_buttCom(155, 187, 108);
  fast_fft_256_res_2p8_buttCom(156, 188, 112);
  fast_fft_256_res_2p8_buttCom(157, 189, 116);
  fast_fft_256_res_2p8_buttCom(158, 190, 120);
  fast_fft_256_res_2p8_buttCom(159, 191, 124);
  fast_fft_256_res_2p8_buttCom(192, 224, 0);
  fast_fft_256_res_2p8_buttCom(193, 225, 4);
  fast_fft_256_res_2p8_buttCom(194, 226, 8);
  fast_fft_256_res_2p8_buttCom(195, 227, 12);
  fast_fft_256_res_2p8_buttCom(196, 228, 16);
  fast_fft_256_res_2p8_buttCom(197, 229, 20);
  fast_fft_256_res_2p8_buttCom(198, 230, 24);
  fast_fft_256_res_2p8_buttCom(199, 231, 28);
  fast_fft_256_res_2p8_buttCom(200, 232, 32);
  fast_fft_256_res_2p8_buttCom(201, 233, 36);
  fast_fft_256_res_2p8_buttCom(202, 234, 40);
  fast_fft_256_res_2p8_buttCom(203, 235, 44);
  fast_fft_256_res_2p8_buttCom(204, 236, 48);
  fast_fft_256_res_2p8_buttCom(205, 237, 52);
  fast_fft_256_res_2p8_buttCom(206, 238, 56);
  fast_fft_256_res_2p8_buttCom(207, 239, 60);
  fast_fft_256_res_2p8_buttCom(208, 240, 64);
  fast_fft_256_res_2p8_buttCom(209, 241, 68);
  fast_fft_256_res_2p8_buttCom(210, 242, 72);
  fast_fft_256_res_2p8_buttCom(211, 243, 76);
  fast_fft_256_res_2p8_buttCom(212, 244, 80);
  fast_fft_256_res_2p8_buttCom(213, 245, 84);
  fast_fft_256_res_2p8_buttCom(214, 246, 88);
  fast_fft_256_res_2p8_buttCom(215, 247, 92);
  fast_fft_256_res_2p8_buttCom(216, 248, 96);
  fast_fft_256_res_2p8_buttCom(217, 249, 100);
  fast_fft_256_res_2p8_buttCom(218, 250, 104);
  fast_fft_256_res_2p8_buttCom(219, 251, 108);
  fast_fft_256_res_2p8_buttCom(220, 252, 112);
  fast_fft_256_res_2p8_buttCom(221, 253, 116);
  fast_fft_256_res_2p8_buttCom(222, 254, 120);
  fast_fft_256_res_2p8_buttCom(223, 255, 124);
  fast_fft_256_res_2p8_buttCom(0, 64, 0);
  fast_fft_256_res_2p8_buttCom(1, 65, 2);
  fast_fft_256_res_2p8_buttCom(2, 66, 4);
  fast_fft_256_res_2p8_buttCom(3, 67, 6);
  fast_fft_256_res_2p8_buttCom(4, 68, 8);
  fast_fft_256_res_2p8_buttCom(5, 69, 10);
  fast_fft_256_res_2p8_buttCom(6, 70, 12);
  fast_fft_256_res_2p8_buttCom(7, 71, 14);
  fast_fft_256_res_2p8_buttCom(8, 72, 16);
  fast_fft_256_res_2p8_buttCom(9, 73, 18);
  fast_fft_256_res_2p8_buttCom(10, 74, 20);
  fast_fft_256_res_2p8_buttCom(11, 75, 22);
  fast_fft_256_res_2p8_buttCom(12, 76, 24);
  fast_fft_256_res_2p8_buttCom(13, 77, 26);
  fast_fft_256_res_2p8_buttCom(14, 78, 28);
  fast_fft_256_res_2p8_buttCom(15, 79, 30);
  fast_fft_256_res_2p8_buttCom(16, 80, 32);
  fast_fft_256_res_2p8_buttCom(17, 81, 34);
  fast_fft_256_res_2p8_buttCom(18, 82, 36);
  fast_fft_256_res_2p8_buttCom(19, 83, 38);
  fast_fft_256_res_2p8_buttCom(20, 84, 40);
  fast_fft_256_res_2p8_buttCom(21, 85, 42);
  fast_fft_256_res_2p8_buttCom(22, 86, 44);
  fast_fft_256_res_2p8_buttCom(23, 87, 46);
  fast_fft_256_res_2p8_buttCom(24, 88, 48);
  fast_fft_256_res_2p8_buttCom(25, 89, 50);
  fast_fft_256_res_2p8_buttCom(26, 90, 52);
  fast_fft_256_res_2p8_buttCom(27, 91, 54);
  fast_fft_256_res_2p8_buttCom(28, 92, 56);
  fast_fft_256_res_2p8_buttCom(29, 93, 58);
  fast_fft_256_res_2p8_buttCom(30, 94, 60);
  fast_fft_256_res_2p8_buttCom(31, 95, 62);
  fast_fft_256_res_2p8_buttCom(32, 96, 64);
  fast_fft_256_res_2p8_buttCom(33, 97, 66);
  fast_fft_256_res_2p8_buttCom(34, 98, 68);
  fast_fft_256_res_2p8_buttCom(35, 99, 70);
  fast_fft_256_res_2p8_buttCom(36, 100, 72);
  fast_fft_256_res_2p8_buttCom(37, 101, 74);
  fast_fft_256_res_2p8_buttCom(38, 102, 76);
  fast_fft_256_res_2p8_buttCom(39, 103, 78);
  fast_fft_256_res_2p8_buttCom(40, 104, 80);
  fast_fft_256_res_2p8_buttCom(41, 105, 82);
  fast_fft_256_res_2p8_buttCom(42, 106, 84);
  fast_fft_256_res_2p8_buttCom(43, 107, 86);
  fast_fft_256_res_2p8_buttCom(44, 108, 88);
  fast_fft_256_res_2p8_buttCom(45, 109, 90);
  fast_fft_256_res_2p8_buttCom(46, 110, 92);
  fast_fft_256_res_2p8_buttCom(47, 111, 94);
  fast_fft_256_res_2p8_buttCom(48, 112, 96);
  fast_fft_256_res_2p8_buttCom(49, 113, 98);
  fast_fft_256_res_2p8_buttCom(50, 114, 100);
  fast_fft_256_res_2p8_buttCom(51, 115, 102);
  fast_fft_256_res_2p8_buttCom(52, 116, 104);
  fast_fft_256_res_2p8_buttCom(53, 117, 106);
  fast_fft_256_res_2p8_buttCom(54, 118, 108);
  fast_fft_256_res_2p8_buttCom(55, 119, 110);
  fast_fft_256_res_2p8_buttCom(56, 120, 112);
  fast_fft_256_res_2p8_buttCom(57, 121, 114);
  fast_fft_256_res_2p8_buttCom(58, 122, 116);
  fast_fft_256_res_2p8_buttCom(59, 123, 118);
  fast_fft_256_res_2p8_buttCom(60, 124, 120);
  fast_fft_256_res_2p8_buttCom(61, 125, 122);
  fast_fft_256_res_2p8_buttCom(62, 126, 124);
  fast_fft_256_res_2p8_buttCom(63, 127, 126);
  fast_fft_256_res_2p8_buttCom(128, 192, 0);
  fast_fft_256_res_2p8_buttCom(129, 193, 2);
  fast_fft_256_res_2p8_buttCom(130, 194, 4);
  fast_fft_256_res_2p8_buttCom(131, 195, 6);
  fast_fft_256_res_2p8_buttCom(132, 196, 8);
  fast_fft_256_res_2p8_buttCom(133, 197, 10);
  fast_fft_256_res_2p8_buttCom(134, 198, 12);
  fast_fft_256_res_2p8_buttCom(135, 199, 14);
  fast_fft_256_res_2p8_buttCom(136, 200, 16);
  fast_fft_256_res_2p8_buttCom(137, 201, 18);
  fast_fft_256_res_2p8_buttCom(138, 202, 20);
  fast_fft_256_res_2p8_buttCom(139, 203, 22);
  fast_fft_256_res_2p8_buttCom(140, 204, 24);
  fast_fft_256_res_2p8_buttCom(141, 205, 26);
  fast_fft_256_res_2p8_buttCom(142, 206, 28);
  fast_fft_256_res_2p8_buttCom(143, 207, 30);
  fast_fft_256_res_2p8_buttCom(144, 208, 32);
  fast_fft_256_res_2p8_buttCom(145, 209, 34);
  fast_fft_256_res_2p8_buttCom(146, 210, 36);
  fast_fft_256_res_2p8_buttCom(147, 211, 38);
  fast_fft_256_res_2p8_buttCom(148, 212, 40);
  fast_fft_256_res_2p8_buttCom(149, 213, 42);
  fast_fft_256_res_2p8_buttCom(150, 214, 44);
  fast_fft_256_res_2p8_buttCom(151, 215, 46);
  fast_fft_256_res_2p8_buttCom(152, 216, 48);
  fast_fft_256_res_2p8_buttCom(153, 217, 50);
  fast_fft_256_res_2p8_buttCom(154, 218, 52);
  fast_fft_256_res_2p8_buttCom(155, 219, 54);
  fast_fft_256_res_2p8_buttCom(156, 220, 56);
  fast_fft_256_res_2p8_buttCom(157, 221, 58);
  fast_fft_256_res_2p8_buttCom(158, 222, 60);
  fast_fft_256_res_2p8_buttCom(159, 223, 62);
  fast_fft_256_res_2p8_buttCom(160, 224, 64);
  fast_fft_256_res_2p8_buttCom(161, 225, 66);
  fast_fft_256_res_2p8_buttCom(162, 226, 68);
  fast_fft_256_res_2p8_buttCom(163, 227, 70);
  fast_fft_256_res_2p8_buttCom(164, 228, 72);
  fast_fft_256_res_2p8_buttCom(165, 229, 74);
  fast_fft_256_res_2p8_buttCom(166, 230, 76);
  fast_fft_256_res_2p8_buttCom(167, 231, 78);
  fast_fft_256_res_2p8_buttCom(168, 232, 80);
  fast_fft_256_res_2p8_buttCom(169, 233, 82);
  fast_fft_256_res_2p8_buttCom(170, 234, 84);
  fast_fft_256_res_2p8_buttCom(171, 235, 86);
  fast_fft_256_res_2p8_buttCom(172, 236, 88);
  fast_fft_256_res_2p8_buttCom(173, 237, 90);
  fast_fft_256_res_2p8_buttCom(174, 238, 92);
  fast_fft_256_res_2p8_buttCom(175, 239, 94);
  fast_fft_256_res_2p8_buttCom(176, 240, 96);
  fast_fft_256_res_2p8_buttCom(177, 241, 98);
  fast_fft_256_res_2p8_buttCom(178, 242, 100);
  fast_fft_256_res_2p8_buttCom(179, 243, 102);
  fast_fft_256_res_2p8_buttCom(180, 244, 104);
  fast_fft_256_res_2p8_buttCom(181, 245, 106);
  fast_fft_256_res_2p8_buttCom(182, 246, 108);
  fast_fft_256_res_2p8_buttCom(183, 247, 110);
  fast_fft_256_res_2p8_buttCom(184, 248, 112);
  fast_fft_256_res_2p8_buttCom(185, 249, 114);
  fast_fft_256_res_2p8_buttCom(186, 250, 116);
  fast_fft_256_res_2p8_buttCom(187, 251, 118);
  fast_fft_256_res_2p8_buttCom(188, 252, 120);
  fast_fft_256_res_2p8_buttCom(189, 253, 122);
  fast_fft_256_res_2p8_buttCom(190, 254, 124);
  fast_fft_256_res_2p8_buttCom(191, 255, 126);
  fast_fft_256_res_2p8_buttCom(0, 128, 0);
  fast_fft_256_res_2p8_buttCom(1, 129, 1);
  fast_fft_256_res_2p8_buttCom(2, 130, 2);
  fast_fft_256_res_2p8_buttCom(3, 131, 3);
  fast_fft_256_res_2p8_buttCom(4, 132, 4);
  fast_fft_256_res_2p8_buttCom(5, 133, 5);
  fast_fft_256_res_2p8_buttCom(6, 134, 6);
  fast_fft_256_res_2p8_buttCom(7, 135, 7);
  fast_fft_256_res_2p8_buttCom(8, 136, 8);
  fast_fft_256_res_2p8_buttCom(9, 137, 9);
  fast_fft_256_res_2p8_buttCom(10, 138, 10);
  fast_fft_256_res_2p8_buttCom(11, 139, 11);
  fast_fft_256_res_2p8_buttCom(12, 140, 12);
  fast_fft_256_res_2p8_buttCom(13, 141, 13);
  fast_fft_256_res_2p8_buttCom(14, 142, 14);
  fast_fft_256_res_2p8_buttCom(15, 143, 15);
  fast_fft_256_res_2p8_buttCom(16, 144, 16);
  fast_fft_256_res_2p8_buttCom(17, 145, 17);
  fast_fft_256_res_2p8_buttCom(18, 146, 18);
  fast_fft_256_res_2p8_buttCom(19, 147, 19);
  fast_fft_256_res_2p8_buttCom(20, 148, 20);
  fast_fft_256_res_2p8_buttCom(21, 149, 21);
  fast_fft_256_res_2p8_buttCom(22, 150, 22);
  fast_fft_256_res_2p8_buttCom(23, 151, 23);
  fast_fft_256_res_2p8_buttCom(24, 152, 24);
  fast_fft_256_res_2p8_buttCom(25, 153, 25);
  fast_fft_256_res_2p8_buttCom(26, 154, 26);
  fast_fft_256_res_2p8_buttCom(27, 155, 27);
  fast_fft_256_res_2p8_buttCom(28, 156, 28);
  fast_fft_256_res_2p8_buttCom(29, 157, 29);
  fast_fft_256_res_2p8_buttCom(30, 158, 30);
  fast_fft_256_res_2p8_buttCom(31, 159, 31);
  fast_fft_256_res_2p8_buttCom(32, 160, 32);
  fast_fft_256_res_2p8_buttCom(33, 161, 33);
  fast_fft_256_res_2p8_buttCom(34, 162, 34);
  fast_fft_256_res_2p8_buttCom(35, 163, 35);
  fast_fft_256_res_2p8_buttCom(36, 164, 36);
  fast_fft_256_res_2p8_buttCom(37, 165, 37);
  fast_fft_256_res_2p8_buttCom(38, 166, 38);
  fast_fft_256_res_2p8_buttCom(39, 167, 39);
  fast_fft_256_res_2p8_buttCom(40, 168, 40);
  fast_fft_256_res_2p8_buttCom(41, 169, 41);
  fast_fft_256_res_2p8_buttCom(42, 170, 42);
  fast_fft_256_res_2p8_buttCom(43, 171, 43);
  fast_fft_256_res_2p8_buttCom(44, 172, 44);
  fast_fft_256_res_2p8_buttCom(45, 173, 45);
  fast_fft_256_res_2p8_buttCom(46, 174, 46);
  fast_fft_256_res_2p8_buttCom(47, 175, 47);
  fast_fft_256_res_2p8_buttCom(48, 176, 48);
  fast_fft_256_res_2p8_buttCom(49, 177, 49);
  fast_fft_256_res_2p8_buttCom(50, 178, 50);
  fast_fft_256_res_2p8_buttCom(51, 179, 51);
  fast_fft_256_res_2p8_buttCom(52, 180, 52);
  fast_fft_256_res_2p8_buttCom(53, 181, 53);
  fast_fft_256_res_2p8_buttCom(54, 182, 54);
  fast_fft_256_res_2p8_buttCom(55, 183, 55);
  fast_fft_256_res_2p8_buttCom(56, 184, 56);
  fast_fft_256_res_2p8_buttCom(57, 185, 57);
  fast_fft_256_res_2p8_buttCom(58, 186, 58);
  fast_fft_256_res_2p8_buttCom(59, 187, 59);
  fast_fft_256_res_2p8_buttCom(60, 188, 60);
  fast_fft_256_res_2p8_buttCom(61, 189, 61);
  fast_fft_256_res_2p8_buttCom(62, 190, 62);
  fast_fft_256_res_2p8_buttCom(63, 191, 63);
  fast_fft_256_res_2p8_buttCom(64, 192, 64);
  fast_fft_256_res_2p8_buttCom(65, 193, 65);
  fast_fft_256_res_2p8_buttCom(66, 194, 66);
  fast_fft_256_res_2p8_buttCom(67, 195, 67);
  fast_fft_256_res_2p8_buttCom(68, 196, 68);
  fast_fft_256_res_2p8_buttCom(69, 197, 69);
  fast_fft_256_res_2p8_buttCom(70, 198, 70);
  fast_fft_256_res_2p8_buttCom(71, 199, 71);
  fast_fft_256_res_2p8_buttCom(72, 200, 72);
  fast_fft_256_res_2p8_buttCom(73, 201, 73);
  fast_fft_256_res_2p8_buttCom(74, 202, 74);
  fast_fft_256_res_2p8_buttCom(75, 203, 75);
  fast_fft_256_res_2p8_buttCom(76, 204, 76);
  fast_fft_256_res_2p8_buttCom(77, 205, 77);
  fast_fft_256_res_2p8_buttCom(78, 206, 78);
  fast_fft_256_res_2p8_buttCom(79, 207, 79);
  fast_fft_256_res_2p8_buttCom(80, 208, 80);
  fast_fft_256_res_2p8_buttCom(81, 209, 81);
  fast_fft_256_res_2p8_buttCom(82, 210, 82);
  fast_fft_256_res_2p8_buttCom(83, 211, 83);
  fast_fft_256_res_2p8_buttCom(84, 212, 84);
  fast_fft_256_res_2p8_buttCom(85, 213, 85);
  fast_fft_256_res_2p8_buttCom(86, 214, 86);
  fast_fft_256_res_2p8_buttCom(87, 215, 87);
  fast_fft_256_res_2p8_buttCom(88, 216, 88);
  fast_fft_256_res_2p8_buttCom(89, 217, 89);
  fast_fft_256_res_2p8_buttCom(90, 218, 90);
  fast_fft_256_res_2p8_buttCom(91, 219, 91);
  fast_fft_256_res_2p8_buttCom(92, 220, 92);
  fast_fft_256_res_2p8_buttCom(93, 221, 93);
  fast_fft_256_res_2p8_buttCom(94, 222, 94);
  fast_fft_256_res_2p8_buttCom(95, 223, 95);
  fast_fft_256_res_2p8_buttCom(96, 224, 96);
  fast_fft_256_res_2p8_buttCom(97, 225, 97);
  fast_fft_256_res_2p8_buttCom(98, 226, 98);
  fast_fft_256_res_2p8_buttCom(99, 227, 99);
  fast_fft_256_res_2p8_buttCom(100, 228, 100);
  fast_fft_256_res_2p8_buttCom(101, 229, 101);
  fast_fft_256_res_2p8_buttCom(102, 230, 102);
  fast_fft_256_res_2p8_buttCom(103, 231, 103);
  fast_fft_256_res_2p8_buttCom(104, 232, 104);
  fast_fft_256_res_2p8_buttCom(105, 233, 105);
  fast_fft_256_res_2p8_buttCom(106, 234, 106);
  fast_fft_256_res_2p8_buttCom(107, 235, 107);
  fast_fft_256_res_2p8_buttCom(108, 236, 108);
  fast_fft_256_res_2p8_buttCom(109, 237, 109);
  fast_fft_256_res_2p8_buttCom(110, 238, 110);
  fast_fft_256_res_2p8_buttCom(111, 239, 111);
  fast_fft_256_res_2p8_buttCom(112, 240, 112);
  fast_fft_256_res_2p8_buttCom(113, 241, 113);
  fast_fft_256_res_2p8_buttCom(114, 242, 114);
  fast_fft_256_res_2p8_buttCom(115, 243, 115);
  fast_fft_256_res_2p8_buttCom(116, 244, 116);
  fast_fft_256_res_2p8_buttCom(117, 245, 117);
  fast_fft_256_res_2p8_buttCom(118, 246, 118);
  fast_fft_256_res_2p8_buttCom(119, 247, 119);
  fast_fft_256_res_2p8_buttCom(120, 248, 120);
  fast_fft_256_res_2p8_buttCom(121, 249, 121);
  fast_fft_256_res_2p8_buttCom(122, 250, 122);
  fast_fft_256_res_2p8_buttCom(123, 251, 123);
  fast_fft_256_res_2p8_buttCom(124, 252, 124);
  fast_fft_256_res_2p8_buttCom(125, 253, 125);
  fast_fft_256_res_2p8_buttCom(126, 254, 126);
  fast_fft_256_res_2p8_buttCom(127, 255, 127);
}

